package com.sam.designpattern.builder;

import java.util.Collection;
import java.util.Map;

/**
 * @Author: Sam
 * @Date: 2022-07-25 09:46
 * @Description: 指导者，指导使用生成器的接口来构建产品对象
 */
public class Director {
    private Builder builder;

    public Director(Builder builder) {
        this.builder = builder;
    }

    /**
     * 指导生成器构建最终输出的文件对象
     *
     * @param ehm     文件头的内容
     * @param mapData 文件数据的内容
     * @param efm     文件尾的内容
     */
    public void construct(ExportHeaderModel ehm, Map<String, Collection<ExportDataModel>> mapData, ExportFooterModel efm) {

        //1.先构建Header
        builder.buildHeader(ehm);
        //2.先构建Body
        builder.buildBody(mapData);
        //3.先构建Footer
        builder.buildFooter(efm);

    }
}
